home *** CD-ROM | disk | FTP | other *** search
- //----------------------------------------------------------------------------
- // File: mazeapp.h
- //
- // Desc: see main.cpp
- //
- // Copyright (c) 1999-2001 Microsoft Corp. All rights reserved.
- //-----------------------------------------------------------------------------
- #ifndef _MAZE_APP_H
- #define _MAZE_APP_H
-
-
- #include "DPlay8Client.h"
- #include "MazeClient.h"
- #include "IMazeGraphics.h"
-
- class CDPlay8Client;
-
- //-----------------------------------------------------------------------------
- // Defines, and constants
- //-----------------------------------------------------------------------------
- #define MAX_OUTPUT_QUEUE 256
- #define MICROSOFT_SERVER TEXT("DirectPlayMaze.rte.microsoft.com")
- #define MAZE_REGKEYNAME TEXT("Software\\Microsoft\\DirectPlayMaze\\MazeClient")
-
- //-----------------------------------------------------------------------------
- // Dplay Defines, and constants
- //-----------------------------------------------------------------------------
- #define MIN_SP_THREADS 1
- #define MAX_SP_THREADS 128
- #define MAX_SP_BUFFER 1024000
-
- //-----------------------------------------------------------------------------
- // Name:
- // Desc:
- //-----------------------------------------------------------------------------
- struct MazeConfig
- {
- BOOL bConnectToMicrosoftSite;
- BOOL bConnectToLocalServer;
- BOOL bConnectToRemoteServer;
- DWORD dwNetworkRetryDelay;
- BOOL bShowFramerate;
- BOOL bShowIndicators;
- BOOL bDrawMiniMap;
- BOOL bFullScreen;
- BOOL bReflections;
- BOOL bFileLogging;
-
- DWORD dwSPThreads;
- DWORD dwSPBufferSize;
-
- DWORD dwStressConnect;
-
- TCHAR szIPAddress[64];
-
- DWORD dwLogLevel;
- DWORD dwAutoPrintStats;
- BOOL bAutoDisconnnect;
- BOOL bAutoConnnect;
- };
-
-
- //-----------------------------------------------------------------------------
- // Name:
- // Desc:
- //-----------------------------------------------------------------------------
- class CMazeApp
- {
-
- public:
- CMazeApp();
- ~CMazeApp();
-
- HRESULT Create( IMazeGraphics* pMazeGraphics );
- int Run( HINSTANCE hInst );
- HRESULT FrameMove( FLOAT fElapsedTime );
- void ConsolePrintf( EnumLineType EnumLineType, const TCHAR* fmt, ... );
- void ReadConfig();
- void WriteConfig();
- void CreateTempLogFile();
- void CloseTempLogFile();
-
- MazeConfig* GetConfig() {return &m_Config; };
-
- TCHAR* GetLogDir() { return m_strLogDir; };
- TCHAR* GetLogFile() { return m_strLogFile; };
- BOOL IsOutOfDateClient() { return m_bOutOfDateClient; };
-
- VOID SetOutOfDateClient( BOOL bOutOfDateClient ) { m_bOutOfDateClient = bOutOfDateClient; };
- VOID SetAllowConnect( BOOL bAllowConnect ) { m_bAllowConnect = bAllowConnect; };
- VOID SetSaveSettings( BOOL bSaveSettings ) { m_bSaveSettings = bSaveSettings; };
- VOID SetConnectNow( BOOL bConnectNow ) { m_bConnectNow = bConnectNow; };
- VOID SetDisconnectNow( BOOL bDisconnectNow ) { m_bDisconnectNow = bDisconnectNow; };
- VOID SetAllowLoopback( BOOL bAllowLoopback ) { m_bAllowLoopback = bAllowLoopback; };
-
- protected:
- static UINT WINAPI StaticOutputMsgThread( LPVOID pParam );
- static UINT WINAPI StaticClientThread( LPVOID pParam );
- UINT WINAPI OutputMsgThread( LPVOID pParam );
- UINT WINAPI ClientThread( LPVOID pParam );
-
- void SuspendPowerManagement();
- BOOL ParseCommandLine();
-
- HRESULT StartSessionEnum();
- HRESULT InitServerForLoopback();
- BOOL TryToConnect();
- void UpdateTimeStamp();
-
- IMazeGraphics* m_pMazeGraphics;
- CDPlay8Client m_DP8Client;
- CMazeClient m_MazeClient;
- CMazeServer m_MazeServer;
- CDummyConnectorServer m_DummyServerConnection;
- CDummyConnectorClient m_DummyClientConnection;
-
- MazeConfig m_Config;
-
- HANDLE m_hOutputMsgThread;
- BOOL m_bQuitThread;
- HANDLE m_hClientThread;
- DWORD m_dwNextOutputMsg;
-
- BOOL m_bLocalLoopbackInitDone;
- BOOL m_bInitDone;
-
- BOOL m_bAllowLoopback;
- BOOL m_bLocalLoopback;
- BOOL m_bAllowConnect;
- BOOL m_bConnectNow;
- BOOL m_bDisconnectNow;
- BOOL m_bOutOfDateClient;
-
- TCHAR m_strTimeStamp[50];
-
- BOOL m_bSaveSettings;
-
- CCriticalSection m_OutputMsgQueueLock;
- LONG m_lQueueSize;
- TCHAR m_szOutputMsgBuffer[MAX_OUTPUT_QUEUE][256];
- EnumLineType m_EnumLineType[MAX_OUTPUT_QUEUE];
- DWORD m_dwNextFreeOutputMsg;
- HANDLE m_hOutputMsgEvent;
- HANDLE m_hLogFile;
- TCHAR m_strLogFile[MAX_PATH];
- TCHAR m_strLogDir[MAX_PATH];
- };
-
-
- #endif
-